package org.grew.openEntity.service;

import org.grew.openEntity.po.logic.ProjectObj;
import org.springframework.data.domain.Page;

import java.util.List;

/**
 * @program: open_entity
 * @author: todd
 * @create: 2019-01-05 17:19
 * @description: 项目 service
 */
public interface ProjectService {

    /**
     * 创建项目
     * @param project 项目名称
     * @return code码
     */
    Integer createProject(ProjectObj project);


    /**
     * 修改项目
     * @param project
     */
    void updateProject(ProjectObj project);

    /**
     * 删除项目
     * @param projectId 项目id
     */
    void delProject(Long projectId);

    /**
     * 根据id获取项目
     * @param projectId 项目id
     * @return 项目对象
     */
    ProjectObj getProjectById(Long projectId);

    /**
     * 根据项目名称模糊查询项目
     * @param projectName 项目名称
     * @return 项目对象列表
     */
    List<ProjectObj> getProjectByName(String projectName);

    /**
     * 获取项目列表
     * @return
     */
    long getProjectCount();

    /**
     * 获取项目分页数据
     * @param pageSize
     * @param pageIndex
     * @return
     */
    Page<ProjectObj> getPageByProject(int pageIndex, int pageSize);

    /**
     * 获取所有project
     * @return
     */
    List<ProjectObj> getProjectALL();

}
